Fix Netty version conflict and switching to Apache Cassandra driver#2512
Merged
ruhan1 merged 1 commit intoCommonjava:masterfrom Dec 10, 2025
Merged
Fix Netty version conflict and switching to Apache Cassandra driver#2512ruhan1 merged 1 commit intoCommonjava:masterfrom
ruhan1 merged 1 commit intoCommonjava:masterfrom
Conversation
…e Cassandra driver
This commit resolves the Netty version conflict causing LinkageError during startup.
Error:
java.lang.LinkageError: Possible multiple incompatible native libraries
on the classpath for libnetty_transport_native_epoll_x86_64.so
Caused by: java.lang.NoSuchMethodError: Method
io.netty.channel.epoll.NativeStaticallyReferencedJniMethods.isSupportingTcpFastopen()Z not found
Root Cause:
Multiple dependencies brought in incompatible Netty versions:
- Cassandra driver 3.11.3 (com.datastax.cassandra) declared Netty 4.0.44.Final (2016!)
- Infinispan 9.4.24 brought in Netty 4.1.51.Final
- o11yphant 1.9.2 brought in Netty 4.1.118.Final
- Various other dependencies brought in 4.1.77.Final and 4.1.100.Final
This version mismatch prevented Netty from loading native epoll transport,
causing fallback to NIO with warnings.
Solution (following approach used in path-mapped-storage):
1. Switched from com.datastax.cassandra to org.apache.cassandra groupId
to match path-mapped-storage dependency (version 3.12.1)
Note: Package names remain com.datastax.driver.* internally
2. Added Netty BOM version 4.1.118.Final to enforce consistent Netty
versions across all modules (eliminates need for exclusions)
Changes:
- pom.xml: Added Netty BOM, switched to Apache Cassandra driver 3.12.1
- subsys/cassandra/pom.xml: Updated to Apache Cassandra driver
- addons/schedule/model-java/pom.xml: Updated to Apache Cassandra driver
- addons/schedule/common/pom.xml: Updated to Apache Cassandra driver
Result:
All modules now use Netty 4.1.118.Final consistently via BOM, eliminating
version conflicts and allowing native epoll transport to load properly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Contributor
Author
|
@copilot review the code see whether it fix the version issue as expected. |
Contributor
Author
|
let's merge and test it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit resolves the Netty version conflict causing LinkageError during startup.
Error:
Caused by: java.lang.NoSuchMethodError: Method
io.netty.channel.epoll.NativeStaticallyReferencedJniMethods.isSupportingTcpFastopen()Z not found
Root Cause:
Multiple dependencies brought in incompatible Netty versions:
This version mismatch prevented Netty from loading native epoll transport, causing fallback to NIO with warnings.
Solution (following approach used in path-mapped-storage):
Changes:
Result:
All modules now use Netty 4.1.118.Final consistently via BOM, eliminating version conflicts and allowing native epoll transport to load properly.
🤖 Generated with Claude Code